//导入vue
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
//导入注册好的模块
import search from './modules/search.js'

//在Vue中应用插件
Vue.use(Vuex)

//配置对象——入口文件一定要写完整
const store = new Vuex.Store({
	//状态：存储共享数据
	state: {
		nickname: '',
		pic: '',
		token: '',
		role: ''
	},
	//创建同步函数，主要作用，修改state内部数据[类似组件methods]
	mutations: {},
	//创建异步函数，主要作用:先被组件调用，然后在函数内部调用mutation的同步函数
	actions: {},
	//类似组件computed
	//设置数据,不改变state数据,return返回另一个形式[类似组件computed]
	getters: {},
	//设置模块开发，指向按照功能将数据分别进行不同的模块
	//跟注册登录相关的数据划分一个模块，购物车相关的数据一个模块，订单数据一个模块【数据量庞大且操作较多的功能区域】
	modules: {
		search,
	},
	//设置store持久化存储，与本地缓存同步
	plugins: [createPersistedState()]
})

//导出
export default store;